The computer has become the “engine” of many enterprises by facilitating the use of computer applications to create, produce and track the work product of a business. Computer applications are available for use in a wide variety of business activities. Among the more popular of these computer applications are groups of general office computer programs that are sold together in “office suites” for use by a broad range of business types. These office suites typically include a word-processing program for creating and editing documents, a spreadsheet program for manipulating numerical or other data and a database program for the storage and retrieval of all types of data. Used alone or in combination, the programs in these office suites (and other computer programs marketed individually) have the potential to enable a wide range of business activities. However, the full potential offered by computer programs is often not realized because of the difficulty in adapting the computer programs for the specific needs of the business.
The power of many general office computer programs has grown dramatically over the last number of years, with many functions having been added to each program that blurs the distinction between individual applications. Some of these added functions are duplicative of functions offered in other programs. This often adds to the complexity of using the applications. Further complicating the use of individual functions is that the method accessing similar functions in different programs is often different-even though the same result may be obtained.
The common wisdom asserts, with not totally unfounded cynicism, that the great majority of users of office suite type computer programs (and other computer programs) learn only a small percentage of the available functions of each program, trading the inefficiencies of doing a task with a program by using the functions that they know against the investment in time and effort that would be necessary to learn how to do that same task in a more efficient way. When a task is performed infrequently, this efficiency tradeoff may make little difference, but for tasks that are performed repeatedly the loss of efficiency in doing something as “I know a way to do it” rather than how it most efficiently could be done might be significant over time.
Many computer applications sold in office suites and separately allow the user to customize a generalized program to the specific tasks required by the business. This customization is done using a variety of tools ranging from those that might be relatively accessible to moderately sophisticated user to tools only suitable for very sophisticated users. For instance, a moderately sophisticated user may be comfortable creating templates and recording macros, while a very sophisticated user might use a high level programming language to directly access the functions of the computer application through an application programming interface (“API”) exposed by a computer application for that purpose. Generally, the greater the customization desired, the more sophistication of the user that is required and the greater the investment in time and effort that is required to accomplish the customization.
While the office suite and other computer applications provide a wide range of functions for a broad range of uses, the “one size fits all” approach provides a great deal of potential for addressing the specific tasks of many different types of businesses, often the potential is unrealized because of the effort and expertise that is necessary for customizing these “general” computer applications to the “specific” uses of the business. In some cases and often at significant expense, the business will turn to a professional programmer or consultant to customize the programs from an office suite or other “general” application to the specific uses of the business. In other cases, the business may commission a professional programmer or consultant to program a custom computer program directed to the needs business. Between these two alternatives, a custom program directed to a particular business type may be available for purchase by the business from a developer, but these applications are often are much more expensive and sometimes less reliable than the mass marketed general applications provided.
Many business activities require that a sequence of tasks be performed. Often this sequence of tasks must be performed over time, with a task or group of tasks being performed on a given day (or other time unit) and another task or group of tasks performed on a later day (or other time unit). For example, a series of loan documents might be prepared and forwarded to a customer for signature. Ten days later the business would like to send a follow-up letter if the loan documents had not been returned, or to forward the loan documents to the loan underwriter if the loan documents had been returned. As indicated by this example, the next task in the sequence may be conditional on whether the previous task was completed or directional in that the next task is dependant on what happened with the previous task. Because of the complexity and expense of creating custom programs or the customization of general office programs, user's often use the computer for the individual tasks and take on the sequencing and decisions on what tasks to complete themselves.
There are many other real world examples of time sequenced tasks. While the production and tracking of documents may be sequenced in terms of days, tasks on a manufacturing line might be sequenced in terms of seconds/microseconds, etc. For example, in a given unit, a hole is drilled, one second later the conveyor belt moves the unit under a painting spray gun, which is activated once second later. Customizing computer applications for automating a sequence of tasks in a manufacturing process also require a greater level of sophistication than is possessed by many users. While the following discussion will be framed in the context of an office producing documents, it should be understood that any time sequenced task might be substituted in that discussion.
There is a long-felt and unmet need for methods and systems that provide a quick and straightforward way to create or customize computer applications that automate time sequenced tasks in a way that meets the specific needs of a business or other user. These methods and systems should allow a user with average or better computer skills to easily assemble sequences of tasks into complex customized applications. The methods and systems should provide an easily understandable and intuitive interface that can be easily grasped by the user to assemble and automate complex tasks while insulating the user from much of the underlying programming necessary to implement the task.